$(function(){
	
	getAllRoles();
	loadTable();
})

var upload = layui.upload,
	table = layui.table,
	layer = layui.layer,
	form = layui.form;

var loadTable = function(){
			table.render({
				elem: '#userInfoTable'
				, height: 'full-150'
				, url: access_url+'/system/systemmanage/queryloginlist' //数据接口
				, method:'post'
				, contentType : 'application/json'
				,where: {//设定异步数据接口的额外参数
					params : {
						login_id : $('#loginId').val()
						,roleIds : $('#roleIds').val()
						,person : {
							phone_no : $('#phoneno').val()
							,person_name : $('#person_name').val()
						}
					}
				}
				,request: {
					pageName: 'pageNum' //页码的参数名称，默认：page
					,limitName: 'pageSize' //每页数据量的参数名，默认：limit
				}
				,response: {
					statusCode: 200 //成功的状态码，默认：0
                }
				, page: {//开启分页
					layout: ['prev', 'page', 'next', 'skip', 'count' ,'limit'] //自定义分页布局
					,groups: 4 //只显示 4 个连续页码
					, prev:"上一页"
					, next:"下一页"
					, first : true
					, last : true
				}
//				, skin: 'nob' //边框风格
				, limit: 10 //每页默认显示的数量
				, cols: [[ //表头
					{field: 'id', title: '序号',unresize:true,type:'numbers',width:50},
                  
                    {
                        field: 'login_id',
                        title: '登陆账号',
                        align: 'center'
                    },
                    {
                        field: 'last_login_time',
                        title: '最后一次登陆时间',
                        align: 'center'
                    },
                    {
                        field: 'person_name',
                        title: '人员姓名',
                        align: 'center',
                        templet: function(d){
                        	if(null == d.person){
                        		return '';
                        	}
                        	return d.person.person_name;
                        }
                    },
                    {
                        field: 'phone_no',
                        title: '联系方式',
                        align: 'center',
                        templet: function(d){
                        	if(null == d.person){
                        		return '';
                        	}
                        	return d.person.phone_no;
                        }
                    },
                    {
                    	field: 'organization.orgname',
                    	title: '组织机构',
                        align: 'center',
                    	templet: function(d){
                    		if(null == d.organization){
                    			return '';
                    		}
                        	return d.organization.orgname;
                        }
                    },
                    {
                    	field: 'rolesStr',
                    	title: '用户角色',
                    	width : '7%',
                    	align: 'center'
                    },
					{field: '', title: '操作',unresize:true,align: 'center',toolbar: '#operate'}
				]]
				,parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                    console.log("parseData->res",res);
                    return {
                      "code": res.code, //解析接口状态
                      "msg": res.msg, //解析提示文本
                      "count": res.retdata.total, //解析数据长度
                      "data": res.retdata.pageData //解析数据列表
                    };
                }
			});
	}

table.on('tool(dataTable)',function(obj){
	var data = obj.data;
	var layEvent = obj.event;
	var login_id = data.login_id
	if('edit'==layEvent) {
		layer.open({
			type : 2
			,title : '编辑角色信息'
			,area : ['700px','550px']
			,offset : '20px'
			,fixed : false
			,content : 'updateUser.html'
			,resize : false
			,success: function (layero, index) {
                // 获取子页面的iframe
                var iframe = window['layui-layer-iframe' + index];
                // 向子页面的全局函数child传参
                iframe.transmitParam(login_id);
            }
		})
	} else if ('del'==layEvent) {
		layer.confirm('确定删除该用户?',{icon:3,title:'提示'},function(index){
			layer.load(2);
			$.ajax({
				type : 'get'
			    ,dataType : 'json'
			    ,url : access_url+'/system/systemmanage/deleteuser'
			    ,data : {
			    	login_id : login_id
			    }
				,success : function(data){
					layer.closeAll('loading');
					if(data.code != 200){
						layer.msg(data.msg, {icon: 5});
						return;
					}
					layer.alert(data.msg,{icon:6});
					loadTable();
					layer.close(index);
				}
			})
		})
	} else if ('resetpwd'==layEvent) {
		layer.confirm('确定重置该用户密码?',{icon:3,title:'提示'},function(index){
			layer.load(2);
			$.ajax({
				type : 'get'
			    ,dataType : 'json'
			    ,url : access_url+'/system/systemmanage/resetpassword'
			    ,data : {
			    	login_id : login_id
			    }
				,success : function(data){
					layer.closeAll('loading');
					if(data.code != 200){
						layer.msg(data.msg, {icon: 5});
						return;
					}
					layer.alert(data.msg,{icon:6});
					loadTable();
					layer.close(index);
				}
			})
		})
	}
})

$('#add-user').click(function(){
	layer.open({
		type : 2
		,title : '添加用户'
		,area : ['700px','550px']
		,offset : '20px'
		,fixed : false
		,content : 'addUser.html'
		,resize : false
	})
})

$('#queryInfo').click(function(){
	loadTable();
})

//下载用户导入模板
$('#model-download').click(function(){
	$(this).attr('href',access_url+'/excelmodel/downloadusermodel')
})

//弹出上传用户模板窗口
$('#model-import').click(function(){
	layer.open({
		type : 1
		,title : '批量导入用户'
		,area : ['450px','150px']
		,offset : '200px'
		,fixed : false
		,content : $('#batch-import')
		,resize : true
	})
})

//通过模板批量导入用户
upload.render({
    elem: '#choose-excel'
    ,url: access_url+'/excelmodel/importusers' //此处配置你自己的上传接口即可
    ,auto: false
	,accept: 'file'
	,exts: 'xlsx|xls'
	,field: 'excelFile'
    ,bindAction: '#start-import'
    ,done: function(data){
		//当导入有部分报错时，展示错误信息列表给用户
		if(501==data.code){
			loadTable();
			layer.open({
				type : 1
				,title : '部分导入失败'
				,area : ['800px','500px']
				,offset : '100px'
				,fixed : false
				,content : $('#error-table')
				,resize : true
				,cancel : function(index,layero){
					//每次提示完删除layui表格
					$("div[lay-id='errorTable']").remove();
				}
			})
			table.render({
				elem : '#error-table'
				,id : 'errorTable'
				,limit : 100
				,cols : [[
					{
						field : 'errorTip'
						,title : '问题描述'
					}
				]]
				,data : data.retlist
			})
			return;
		}
		if(data.code != 200){
			layer.msg(data.msg, {icon: 5});
			return;
		}
		layer.msg(data.msg,{icon:6});
		loadTable();
		layer.closeAll('page');
    }
});

function getAllRoles(){
	console.log('进入获取角色方法');
	$.ajax({
		type : 'get'
		,dataType : 'json'
		,async : false
		,url : access_url+'/system/systemmanage/getallroles'
		,success : function(data){
			console.log("data",data);
			var retlist = data.retlist;
			var len = retlist.length;
			
			var roleshtml = '';
			for (var i = 0; i < len; i++) {
				var role_level = retlist[i].role_level;
				var role_id = retlist[i].role_id;
				var role_name = retlist[i].role_name;
				
				var role = `<option value="${role_id}">${role_name}</option>`;
				roleshtml += role;
			}
			
			$('#roleIds').append(roleshtml);
			form.val('paramForm')
		}
	})
}